/**
 * 代码中的类名、方法名、参数名已经指定，请勿修改，直接返回方法规定的值即可
 *
 * 
 * @param s string字符串 
 * @return int整型
 */
 function StrToInt( s ) {
  // write code here
  var sign = 1  // 初始化符号
  var str = s.trim() // 去除两边的空格
  var len = str.length // 得到字符串的长度
  var res = 0 // 初始化结果
  if(len === 0) return 0 // 如果代码长度是0 就返回0
  if(str[0] === '-'){ // 如果第一个是-号 那就改变符号值是-1
    sign = -1
  }else if (str[0] === '+'){ // 如果第一个是+号 那就改变符号值 是1
    sign = 1
  }else if (str[0] >= '0' && str[0] <= '9'){ // 否则的话还是1
    sign = 1
    res = res * 10 + (str[0] - '0')
  }else { // 其他情况是非法字符 那就返回0
    return 0
  }
  for(let i = 1;i < len;i++){ // 从第一位开始遍历字符串
    if(str[i] >= '0' && str[i] <= '9'){ // 如果是数字
      res = res * 10 + sign * str[i] // 加上去转换成正数
    }else {
      return res // 不是数字就返回 结果
    }
    if(sign === -1){
      res = res > -Math.pow(2,31) ? res : -Math.pow(2,31) // 边界溢出
    }else if (sign === 1){
      res = res > (Math.pow(2,31) - 1) ? (Math.pow(2,31) - 1) : res // 边界溢出
    }
  }
  return res
}
module.exports = {
  StrToInt : StrToInt
};